#include "symtable.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/**
 Implémentation de la table des symboles, le plus simple est de faire une liste chainée
 bison lit lexeme par lexeme et les oublie ensuite
 a chaque fois qu'on lit un yytext, on le récupere et on le mets dans la listes
 ajoutEntree(yytext, FININSTRUCTION, s);
 FININSTRUCTION est l'entier qui correspond au token FININSTRUCTION
 */
void ajoutEntree(char * str, int tok, symtable s){
  entree * noeudCourant=s.tete;
  
 while(noeudCourant->suivant!=NULL){
    noeudCourant=noeudCourant->suivant;
 }
  noeudCourant=(struct entree *)malloc(sizeof(struct entree_s));
  noeudCourant->lexemeptr=str;
  strcpy (noeudCourant->lexemeptr,str); 
  noeudCourant->token=tok;
}


int hasEntree(char * str, symtable s){
  entree * noeudCourant=s.tete; 
  int i=0;
  while(noeudCourant->suivant!=NULL){
      if(strcmp(noeudCourant->strT,str)==0){
	return i;
      }
      i++;
  }
  return -1;
}

entree getEntree(char * str, symtable s){
  entree * noeudCourant=s.tete; 
  int i=0;
  while(noeudCourant->suivant!=NULL){
      if(strcmp(noeudCourant->strT,str)==0){
	return noeudCourant;
      }
  }
  return null;
}